﻿Imports CapaLogica.CL.Carrera
Imports CapaLogica
Imports CapaLogica.CL.Grupo
Imports CapaLogica.CL.UtilidadesGenerales
Imports CapaLogica.CL.Usuario

Public Class frmBuscarGrupo


    Private Sub btnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Dim mensaje As String
        mensaje = "Desea salir de la la búsqueda"
        Dim button As DialogResult = MessageBox.Show(mensaje, "Usuario", MessageBoxButtons.YesNoCancel,
                                                     MessageBoxIcon.Warning)

        If button = DialogResult.Yes Then
            Me.Dispose()

        End If
    End Sub


    Private Sub frmBuscarGrupo_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        cargarCarreras()
    End Sub

    Private Sub cargarCarreras()
        llenarComoBox(cmbCarrera, GestorCarrera.listarTodasLasCarreras(), "--Seleccione la Carrera--")
    End Sub

    Private Sub cmbCarrera_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbCarrera.SelectedIndexChanged
        Try
            Dim indice As Integer = cmbCarrera.SelectedIndex
            If indice > 0 Then
                llenarComoBox(cmbCurso, CapaLogica.GestorCurso.listarCursosDeCarrera(obtenerIdComboBox(cmbCarrera)), "--Seleccione el Curso--")
            End If

        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error")
        End Try
    End Sub



    Private Sub btnBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBuscar.Click


        If validar() Then

            Dim id_carrera As Int32
            Dim id_curso As Int32

            id_carrera = obtenerIdComboBox(cmbCarrera)
            id_curso = obtenerIdComboBox(cmbCurso)

            DataGridCurso.DataSource = GestorGrupo.buscarGrupo(id_carrera, id_curso)

        End If

    End Sub

    Private Function validar() As Boolean
        If cmbCarrera.SelectedIndex < 1 Then
            MsgBox("Debe seleccionar la carrera a buscar", MsgBoxStyle.Exclamation, "Error")
            Return False
        ElseIf cmbCurso.SelectedIndex < 1 Then
            MsgBox("Debe seleccionar un curso.", MsgBoxStyle.Exclamation, "Error")
            Return False
        End If

        Return True

    End Function

    Private Sub btnConsultar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConsultar.Click
        If DataGridCurso.CurrentRow Is Nothing Then
            MsgBox("Debe seleccionar un grupo", MsgBoxStyle.Exclamation, "Error")

        Else
            Dim idGrupo As Integer
            idGrupo = DataGridCurso.SelectedRows(0).Cells(0).Value()

            Try
                Dim grupo As Dictionary(Of String, Object) = GestorGrupo.consultarGrupo(idGrupo)
                Dim estudiantes As List(Of Informacion) = GestorUsuario.listarEstudiantesGrupo(idGrupo)
                Dim profesores As List(Of Informacion) = GestorUsuario.listarProfesoresDeUnGrupo(idGrupo)
                Dim pantalla As frmConsultarGrupo = New frmConsultarGrupo(idGrupo, "Consultar Grupo", grupo, estudiantes, profesores)
                pantalla.ShowDialog()
                refrescar()
            Catch ex As Exception
                MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error")
            End Try
        End If
    End Sub

    Private Sub tsbRefrescar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsbRefrescar.Click
        refrescar()
    End Sub

    Private Sub refrescar()

        limpiarComboBox(cmbCarrera)
        limpiarComboBox(cmbCurso)
        cargarCarreras()
    End Sub

    Private Sub btnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEliminar.Click
        If ((DataGridCurso.CurrentRow Is Nothing) OrElse (DataGridCurso.SelectedRows.Count = 0)) Then
            MsgBox("Debe de seleccionar un grupo antes de eliminarlo", MsgBoxStyle.Exclamation, "Error")
            Exit Sub

        Else
            Dim mensaje As String
            mensaje = "Desea eliminar el grupo. Si es así, se eliminaran sus foros y todas su relaciones."
            Dim button As DialogResult = MessageBox.Show(mensaje, "Usuario", MessageBoxButtons.YesNoCancel,
                                                        MessageBoxIcon.Warning)
            If button = DialogResult.Yes Then

                Try
                    GestorGrupo.eliminarGrupo(Convert.ToString(DataGridCurso.CurrentRow.Cells(0).Value.ToString()))
                    MsgBox("El grupo se ha eliminado con éxito")

                Catch ex As Exception
                    MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Error")
                End Try
            Else
                MsgBox("El grupo no se ha eliminado")
            End If

        End If

    End Sub

    Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
        Me.Dispose()
    End Sub
End Class